#Exerccios 8 - Construo de Funes
##Gustavo Agudelo. No. USP: 8893871

setwd("E:/Science/USP/Mestrado Fisiologia Geral_IB-USP/Disciplinas/Primeiro semestre_2014-1/Uso da Linguagem R para Anlise de Dados em Ecologia_2014-1/Exerccios R/Exerccios 8 - Construo de Funes")

#8.1 Funes simples

f = runif(100, 0, 100) #100 valores aleatrios de 0 a 100 que provm de uma distribuio uniforme
conversor <- function(f)
        {
          c = (5/9)*(f-32) #Frmula de converso de graus Celsius para Fahrenheit
          conversor <- data.frame(f, c) #Construir um objeto da classe dataframe que mostre os graus Fahrenheit na primeira coluna e os graus Celsius na segunda coluna.
          return(conversor)
        }
conversor(f)

#8.2
x <-as.vector (rnorm (100,170,10))
y <-as.vector (rnorm (100,155,7))
graphics <- function(x, y)
	{
  		{
		if (length (x)!=length (y))
		stop ("\n\t Os vetores x e y no tm o mesmo tamnaho")
		}
	x11()
	par(mfrow = c(3,2))
	par(bty="l.5", tcl=0.3)
	hist(x, main="Histograma de x", xlab="x", ylab= "", prob=T, type="l")
	lines(density(x),col="blue")
	hist(y, main="Histograma de y", xlab="y", ylab= "", prob=T, type="l")
	lines(density(y),col="red")
	qqnorm(x,pch=20, col="black",main="Grfico Quantil x Quantil",xlab="Quantil Terico de x", ylab= "Quantil da Amostra x")
	qqline(x, col="blue")
	qqnorm(y, pch=18, col="black",main="Grfico Quantil x Quantil", xlab="Quantil Terico de Y", ylab= "Quantis da Amostra y")
	qqline(y, col="red")
	boxplot(x,y, main="", ylab= "", xlab="Variveis", ylim=c(135,200))
	text (1, 136, "x", cex= 1)
	text (2, 136, "y", cex= 1)
	plot(y~x, pch=20, main= "Relao entre x e y", ylab="y", xlab="x")
	lm.xy<-lm(y~x)
	abline(lm.xy, col="blue")
	coef<-coef(lm.xy)
	summary <- list(summary(x),summary(y),coef)
	return(summary)
	par(mfrow=c(1,1))
	} 
graphics(x,y)

#8.3 ndice de diversidade de espcies
#Parte I.
abundncia <- round((runif(30, 0, 20)), digits=0)

shannon <- function(abundncia)
	{
	ab1 = na.omit(abundncia)
	ab2 = ab1[ab1>0]
	Pi <- (ab2)/(sum(ab2))
	H = -(sum((Pi)*(log(Pi))))
	return(H)
	}
shannon(abundncia)

simpson <- function(abundncia)
	{
	ab1 = na.omit(abundncia)
	ab2 = ab1[ab1>0]
	Pi <- (ab2)/(sum(ab2))
	S = sum(Pi^2)
	return(S)
	}
simpson(abundncia)

#Parte II

x1=rpois(20,1)
x2=rpois(20,2)
x3=rpois(20,3)
x4=rpois(20,1)
x=matrix(c(x1,x2,x3,x4), ncol=4)
colnames(x)<-c("plot A", "plot B", "plot C", "plot D")
rownames(x)<-paste("sp", c(1:20))

diversidade <- function(x, indice) 
		{
		if(indice=="shannon")
			{
			H <- apply(x, MARGIN = 2, FUN = shannon)
			return(H)
			}
		else(indice=="simpson")
			{
			S <- apply(x, MARGIN = 2, FUN = simpson)
			return(S)
			}
		}

diversidade(x, indice="shannon")
diversidade(x, indice="simpson")





